
//1052.爱生气的书店老板
class Solution {
    public:
        int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int minutes) {
            int n=customers.size();
    
            int sum=0;  //先求出，不生气情况下的客人总量
            for(int i=0;i<n;i++)
            if(grumpy[i]==0) sum+=customers[i];
    
            //将抑制生气的利益最大化，求出minutes区间中生气是客户最大值
            int ret=0,tmp=0;
            int left=0,right=0;
            while(right<n)
            {
                //入窗口
                while(right-left<minutes)
                {
                    if(grumpy[right]) tmp+=customers[right];
                    right++;
                }
    
                //更新答案
                ret=max(ret,tmp);
                //出窗口
                if(grumpy[left])
                tmp-=customers[left];
                left++;
            }
            return ret+sum;   
        }
    };